﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace QuanLyHocPhi.GUI
{
    using BLL;
    using Model;

    public partial class FormTruong_Details : Form
    {
        public bool IsAdding { get; private set; }
        private Truong m_Truong;

        public FormTruong_Details(bool isAdding, Truong pTruong)
        {
            InitializeComponent();
            this.IsAdding = isAdding;
            this.m_Truong = pTruong;
            if (this.IsAdding)
            {
                txtMaTruong.ReadOnly = false;
                this.ActiveControl = txtMaTruong;
                this.Text = "Tạo mới trường";
            }
            else
            {
                txtMaTruong.ReadOnly = true;
                this.ActiveControl = txtTenTruong;
                this.Text = "Chỉnh sửa trường";
            }
            DisplayObject();
        }

        /// <summary>
        /// Hiển thị thông tin đối tượng lên Form
        /// </summary>
        private void DisplayObject()
        {
            txtMaTruong.Text = m_Truong.MaTruong;
            txtTenTruong.Text = m_Truong.TenTruong;
        }

        private void OnOKClick(object sender, EventArgs e)
        {
            #region Kiểm tra tính hợp lệ của dữ liệu
            epMain.Clear();
            string maTruong = txtMaTruong.Text.Trim();
            if (maTruong.IsNullOrEmpty())
            {
                epMain.SetError(txtMaTruong, "Ký hiệu trường không hợp lệ!");
                txtMaTruong.Focus();
                return;
            }

            string tenTruong = txtTenTruong.Text.Trim();
            if (tenTruong.IsNullOrEmpty())
            {
                epMain.SetError(txtTenTruong, "Tên trường không hợp lệ!");
                txtTenTruong.Focus();
                return;
            }
            #endregion

            try
            {
                Truong truong = new Truong
                {
                    MaTruong = maTruong,
                    TenTruong = tenTruong
                };

                if (IsAdding)
                    BizTruong.Add_Truong(truong);
                else
                    BizTruong.Update_Truong(truong);
                this.m_Truong.MaTruong = truong.MaTruong;
                this.m_Truong.TenTruong = truong.TenTruong;
                this.DialogResult = System.Windows.Forms.DialogResult.OK;
                this.Close();
            }
            catch (Exception exc)
            {
                DialogUtils.ShowError(exc.Message);
            }
        }

        private void OnLoad(object sender, EventArgs e)
        {
        }

        private void OnTenTruongKeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyData == Keys.Enter)
            {
                e.SuppressKeyPress = true;
                e.Handled = true;
                btnOK.PerformClick();
            }
        }

        private void OnMaTruongKeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyData == Keys.Enter)
            {
                e.SuppressKeyPress = true;
                e.Handled = true;
                txtTenTruong.Focus();
            }
        }
    }
}
